package bairui.international.model.domain.jpa;

import com.lianjing.sh.model.uml.model.data.TBSuper_BaseIDAndTimeAndOrderValue;

/**
 *
 * (分公司员工提现单)TB_BranchCompanyStaffWithdrawOrder
 *
 * @说明
 * <pre>

 * </pre>
 *
 * @see Help_TB_BranchCompanyStaffWithdrawOrder#inheritance() 继承体系信息
 *
 */
@org.hibernate.annotations.DynamicInsert
@org.hibernate.annotations.DynamicUpdate

@javax.persistence.Entity(name="t_branchCompanyStaffWithdrawOrder")
@com.lianjing.sh.processing.info.annotation.GenerateInfoModel
@SuppressWarnings("serial")
@com.lianjing.sh.model.common.annotation.Comment("分公司员工提现单")
@com.lianjing.sh.processing.info.annotation.InfoComment("分公司员工提现单")
public class TB_BranchCompanyStaffWithdrawOrder
 extends TBSuper_BaseIDAndTimeAndOrderValue
 implements 
	com.lianjing.sh.model.common.stardard.TableModel<Long>,
	com.sh_lianjing.state.HasStatable,
	java.io.Serializable

{

	
	
	/**
	 * 必须属性赋值接口
	 */
	public static interface MustProperties{
		/** 金额 */
		public Double getMoney();
		/** 编号 */
		public String getNumber();
		/** 状态 */
		public bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder getState();
		/** 分公司员工 */
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getBranchCompanyStaff();
	}
	
	/**
	 * 为必须属性赋值
	 */
	public TB_BranchCompanyStaffWithdrawOrder properties(MustProperties properties) {
		this.setMoney(properties.getMoney());
		this.setNumber(properties.getNumber());
		this.setState(properties.getState());
		this.setBranchCompanyStaff(properties.getBranchCompanyStaff());
		return this;
	}
	
	/**
	 *	必须属性构造函数
	 */
	public TB_BranchCompanyStaffWithdrawOrder(MustProperties properties) {
		this.properties(properties);
	}
	
	
	/**
	 * 可选单属性赋值接口
	 */
	public static interface OptionalSingleProperties{
		/** 提交时间 */
		public java.util.Date getSubmitDate();
		/** 审核时间 */
		public java.util.Date getVerifyDate();
		/** 用户名 */
		public String getRealName();
		/** 提现账号 */
		public String getAccountNumber();
		/** 开户行 */
		public String getBank();
		/** 审核意见 */
		public String getVerifyComment();
		/** 汇款截图 */
		public String getRemitImgUrl();
		/** 审核者 */
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getVerifior();
	}
	
	/**
	 * 为可选单属性赋值
	 */
	public TB_BranchCompanyStaffWithdrawOrder properties(OptionalSingleProperties properties) {
		this.setSubmitDate(properties.getSubmitDate());
		this.setVerifyDate(properties.getVerifyDate());
		this.setRealName(properties.getRealName());
		this.setAccountNumber(properties.getAccountNumber());
		this.setBank(properties.getBank());
		this.setVerifyComment(properties.getVerifyComment());
		this.setRemitImgUrl(properties.getRemitImgUrl());
		this.setVerifior(properties.getVerifior());
		return this;
	}
	
	
	
	public TB_BranchCompanyStaffWithdrawOrder(MustProperties must, OptionalSingleProperties optionalSingle) {
		this.properties(must);
		this.properties(optionalSingle);
	}
	
	/**
	 * 仅当前必须属性赋值接口
	 */
	public static interface CurrentMustProperties{
		/** 金额 */
		public Double getMoney();
		/** 编号 */
		public String getNumber();
		/** 状态 */
		public bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder getState();
		/** 分公司员工 */
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getBranchCompanyStaff();
	}
	
	/**
	 * 为仅当前必须属性赋值
	 */
	public TB_BranchCompanyStaffWithdrawOrder properties(CurrentMustProperties properties) {
		this.setMoney(properties.getMoney());
		this.setNumber(properties.getNumber());
		this.setState(properties.getState());
		this.setBranchCompanyStaff(properties.getBranchCompanyStaff());
		return this;
	}
	
	/**
	 * 仅当前可选单属性赋值接口
	 */
	public static interface CurrentOptionalSingleProperties{
		/** 提交时间 */
		public java.util.Date getSubmitDate();
		/** 审核时间 */
		public java.util.Date getVerifyDate();
		/** 用户名 */
		public String getRealName();
		/** 提现账号 */
		public String getAccountNumber();
		/** 开户行 */
		public String getBank();
		/** 审核意见 */
		public String getVerifyComment();
		/** 汇款截图 */
		public String getRemitImgUrl();
		/** 审核者 */
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getVerifior();
	}
	
	/**
	 * 为仅当前可选单属性赋值
	 */
	public TB_BranchCompanyStaffWithdrawOrder properties(CurrentOptionalSingleProperties properties) {
		this.setSubmitDate(properties.getSubmitDate());
		this.setVerifyDate(properties.getVerifyDate());
		this.setRealName(properties.getRealName());
		this.setAccountNumber(properties.getAccountNumber());
		this.setBank(properties.getBank());
		this.setVerifyComment(properties.getVerifyComment());
		this.setRemitImgUrl(properties.getRemitImgUrl());
		this.setVerifior(properties.getVerifior());
		return this;
	}
	
	public TB_BranchCompanyStaffWithdrawOrder(
		@lombok.NonNull com.lianjing.sh.model.uml.model.data.TBSuper_BaseIDAndTimeAndOrderValue bean,
		CurrentMustProperties mustProperties,
		CurrentOptionalSingleProperties optionalProperties
	) {
		this(bean);
		this.properties(mustProperties);
		this.properties(optionalProperties);
	}
	
	public TB_BranchCompanyStaffWithdrawOrder(
		@lombok.NonNull com.lianjing.sh.model.uml.model.data.TBSuper_BaseIDAndTimeAndOrderValue bean
	) {
		update(bean);
	}
	
	public TB_BranchCompanyStaffWithdrawOrder update(com.lianjing.sh.model.uml.model.data.TBSuper_BaseIDAndTimeAndOrderValue bean){
		this.setId(bean.getId());
		this.setCreateTime(bean.getCreateTime());
		this.setModifyTime(bean.getModifyTime());
		this.setOrderValue(bean.getOrderValue());
		return this;
	}
	
	
	/**
	 * 更新属性内部类
	 */
	public abstract class UpdateProperties {
	
		public UpdateProperties() throws Exception {
			Integer orderValue = getOrderValue(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getOrderValue){
				TB_BranchCompanyStaffWithdrawOrder.this.setOrderValue(orderValue);
			}
	
			Double money = getMoney(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getMoney){
				TB_BranchCompanyStaffWithdrawOrder.this.setMoney(money);
			}
	
			String number = getNumber(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getNumber){
				TB_BranchCompanyStaffWithdrawOrder.this.setNumber(number);
			}
	
			java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord> branchCompanyStaffWithdrawVerifyRecords = getBranchCompanyStaffWithdrawVerifyRecords(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getBranchCompanyStaffWithdrawVerifyRecords){
				TB_BranchCompanyStaffWithdrawOrder.this.setBranchCompanyStaffWithdrawVerifyRecords(branchCompanyStaffWithdrawVerifyRecords);
			}
	
			bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder state = getState(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getState){
				TB_BranchCompanyStaffWithdrawOrder.this.setState(state);
			}
	
			java.util.Date submitDate = getSubmitDate(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getSubmitDate){
				TB_BranchCompanyStaffWithdrawOrder.this.setSubmitDate(submitDate);
			}
	
			java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord> branchCompanyStaffMoneyRecords = getBranchCompanyStaffMoneyRecords(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getBranchCompanyStaffMoneyRecords){
				TB_BranchCompanyStaffWithdrawOrder.this.setBranchCompanyStaffMoneyRecords(branchCompanyStaffMoneyRecords);
			}
	
			java.util.Date verifyDate = getVerifyDate(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getVerifyDate){
				TB_BranchCompanyStaffWithdrawOrder.this.setVerifyDate(verifyDate);
			}
	
			String realName = getRealName(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getRealName){
				TB_BranchCompanyStaffWithdrawOrder.this.setRealName(realName);
			}
	
			String accountNumber = getAccountNumber(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getAccountNumber){
				TB_BranchCompanyStaffWithdrawOrder.this.setAccountNumber(accountNumber);
			}
	
			String bank = getBank(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getBank){
				TB_BranchCompanyStaffWithdrawOrder.this.setBank(bank);
			}
	
			String verifyComment = getVerifyComment(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getVerifyComment){
				TB_BranchCompanyStaffWithdrawOrder.this.setVerifyComment(verifyComment);
			}
	
			String remitImgUrl = getRemitImgUrl(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getRemitImgUrl){
				TB_BranchCompanyStaffWithdrawOrder.this.setRemitImgUrl(remitImgUrl);
			}
	
			bairui.international.model.domain.jpa.TB_BranchCompanyStaff branchCompanyStaff = getBranchCompanyStaff(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getBranchCompanyStaff){
				TB_BranchCompanyStaffWithdrawOrder.this.setBranchCompanyStaff(branchCompanyStaff);
			}
	
			bairui.international.model.domain.jpa.TB_BranchCompanyStaff verifior = getVerifior(TB_BranchCompanyStaffWithdrawOrder.this);
			if(isOverride_getVerifior){
				TB_BranchCompanyStaffWithdrawOrder.this.setVerifior(verifior);
			}
		}
	
		public TB_BranchCompanyStaffWithdrawOrder up(){
			return TB_BranchCompanyStaffWithdrawOrder.this;
		}
	
		/** 排序值 */
		private boolean isOverride_getOrderValue = true;
		public Integer getOrderValue(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getOrderValue = false; 
			return null;
		}
		/** 金额 */
		private boolean isOverride_getMoney = true;
		public Double getMoney(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getMoney = false; 
			return null;
		}
		/** 编号 */
		private boolean isOverride_getNumber = true;
		public String getNumber(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getNumber = false; 
			return null;
		}
		/** 分公司员工提现审核记录 */
		private boolean isOverride_getBranchCompanyStaffWithdrawVerifyRecords = true;
		public java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord> getBranchCompanyStaffWithdrawVerifyRecords(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getBranchCompanyStaffWithdrawVerifyRecords = false; 
			return null;
		}
		/** 状态 */
		private boolean isOverride_getState = true;
		public bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder getState(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getState = false; 
			return null;
		}
		/** 提交时间 */
		private boolean isOverride_getSubmitDate = true;
		public java.util.Date getSubmitDate(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getSubmitDate = false; 
			return null;
		}
		/** 分公司员工金额记录 */
		private boolean isOverride_getBranchCompanyStaffMoneyRecords = true;
		public java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord> getBranchCompanyStaffMoneyRecords(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getBranchCompanyStaffMoneyRecords = false; 
			return null;
		}
		/** 审核时间 */
		private boolean isOverride_getVerifyDate = true;
		public java.util.Date getVerifyDate(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getVerifyDate = false; 
			return null;
		}
		/** 用户名 */
		private boolean isOverride_getRealName = true;
		public String getRealName(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getRealName = false; 
			return null;
		}
		/** 提现账号 */
		private boolean isOverride_getAccountNumber = true;
		public String getAccountNumber(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getAccountNumber = false; 
			return null;
		}
		/** 开户行 */
		private boolean isOverride_getBank = true;
		public String getBank(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getBank = false; 
			return null;
		}
		/** 审核意见 */
		private boolean isOverride_getVerifyComment = true;
		public String getVerifyComment(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getVerifyComment = false; 
			return null;
		}
		/** 汇款截图 */
		private boolean isOverride_getRemitImgUrl = true;
		public String getRemitImgUrl(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getRemitImgUrl = false; 
			return null;
		}
		/** 分公司员工 */
		private boolean isOverride_getBranchCompanyStaff = true;
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getBranchCompanyStaff(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getBranchCompanyStaff = false; 
			return null;
		}
		/** 审核者 */
		private boolean isOverride_getVerifior = true;
		public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getVerifior(TB_BranchCompanyStaffWithdrawOrder it) throws Exception { 
			isOverride_getVerifior = false; 
			return null;
		}
	
	}
	
	
	/**
	 * 构造函数
	 */
	public TB_BranchCompanyStaffWithdrawOrder() {
	}
	
	public TB_BranchCompanyStaffWithdrawOrder(
		@lombok.NonNull Long id
	) {
		this.setId(id);
	}
	
	public TB_BranchCompanyStaffWithdrawOrder(
		@lombok.NonNull TB_BranchCompanyStaffWithdrawOrder bean
	) {
		this.setId(bean.getId());
		this.setCreateTime(bean.getCreateTime());
		this.setModifyTime(bean.getModifyTime());
		this.setOrderValue(bean.getOrderValue());
		this.setMoney(bean.getMoney());
		this.setNumber(bean.getNumber());
		this.setBranchCompanyStaffWithdrawVerifyRecords(bean.getBranchCompanyStaffWithdrawVerifyRecords());
		this.setState(bean.getState());
		this.setSubmitDate(bean.getSubmitDate());
		this.setBranchCompanyStaffMoneyRecords(bean.getBranchCompanyStaffMoneyRecords());
		this.setVerifyDate(bean.getVerifyDate());
		this.setRealName(bean.getRealName());
		this.setAccountNumber(bean.getAccountNumber());
		this.setBank(bean.getBank());
		this.setVerifyComment(bean.getVerifyComment());
		this.setRemitImgUrl(bean.getRemitImgUrl());
		this.setBranchCompanyStaff(bean.getBranchCompanyStaff());
		this.setVerifior(bean.getVerifior());
	}
	
	

	


	/**
	 * 属性
	 */
	@com.lianjing.sh.model.common.annotation.Comment("金额")
	@com.lianjing.sh.processing.info.annotation.InfoComment("金额")
	@javax.persistence.Column(name="money", nullable=false)
	private Double money;

	@com.lianjing.sh.model.common.annotation.Comment("编号")
	@com.lianjing.sh.processing.info.annotation.InfoComment("编号")
	@javax.persistence.Column(name="number", unique=true, nullable=false, length=32)
	private String number;

	@com.lianjing.sh.model.common.annotation.Comment("分公司员工提现审核记录")
	@com.lianjing.sh.processing.info.annotation.InfoComment("分公司员工提现审核记录")
	@com.querydsl.core.annotations.QueryInit("*.*.*")
	@javax.persistence.OneToMany(mappedBy="branchCompanyStaffWithdrawOrder")
	private java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord> branchCompanyStaffWithdrawVerifyRecords;

	@com.lianjing.sh.model.common.annotation.Comment("状态")
	@com.lianjing.sh.processing.info.annotation.InfoComment("状态")
	@javax.persistence.Enumerated(javax.persistence.EnumType.STRING)
	@javax.persistence.Column(name="state", nullable=false)
	private bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder state;

	@com.lianjing.sh.model.common.annotation.Comment("提交时间")
	@com.lianjing.sh.processing.info.annotation.InfoComment("提交时间")
	@javax.persistence.Column(name="submitDate")
	private java.util.Date submitDate;

	@com.lianjing.sh.model.common.annotation.Comment("分公司员工金额记录")
	@com.lianjing.sh.processing.info.annotation.InfoComment("分公司员工金额记录")
	@com.querydsl.core.annotations.QueryInit("*.*.*")
	@javax.persistence.OneToMany(mappedBy="branchCompanyStaffWithdrawOrder")
	private java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord> branchCompanyStaffMoneyRecords;

	@com.lianjing.sh.model.common.annotation.Comment("审核时间")
	@com.lianjing.sh.processing.info.annotation.InfoComment("审核时间")
	@javax.persistence.Column(name="verifyDate")
	private java.util.Date verifyDate;

	@com.lianjing.sh.model.common.annotation.Comment("用户名")
	@com.lianjing.sh.processing.info.annotation.InfoComment("用户名")
	@javax.persistence.Column(name="realName", length=30)
	private String realName;

	@com.lianjing.sh.model.common.annotation.Comment("提现账号")
	@com.lianjing.sh.processing.info.annotation.InfoComment("提现账号")
	@javax.persistence.Column(name="accountNumber", length=50)
	private String accountNumber;

	@com.lianjing.sh.model.common.annotation.Comment("开户行")
	@com.lianjing.sh.processing.info.annotation.InfoComment("开户行")
	@javax.persistence.Column(name="bank", length=100)
	private String bank;

	@com.lianjing.sh.model.common.annotation.Comment("审核意见")
	@com.lianjing.sh.processing.info.annotation.InfoComment("审核意见")
	@javax.persistence.Column(name="verifyComment", length=255)
	private String verifyComment;

	@com.lianjing.sh.model.common.annotation.Comment("汇款截图")
	@com.lianjing.sh.processing.info.annotation.InfoComment("汇款截图")
	@javax.persistence.Column(name="remitImgUrl", length=500)
	private String remitImgUrl;

	@com.lianjing.sh.model.common.annotation.Comment("分公司员工")
	@com.lianjing.sh.processing.info.annotation.InfoComment("分公司员工")
	@com.querydsl.core.annotations.QueryInit("*.*.*")
	@javax.persistence.ManyToOne(optional=false)
	private bairui.international.model.domain.jpa.TB_BranchCompanyStaff branchCompanyStaff;

	@com.lianjing.sh.model.common.annotation.Comment("审核者")
	@com.lianjing.sh.processing.info.annotation.InfoComment("审核者")
	@com.querydsl.core.annotations.QueryInit("*.*.*")
	@javax.persistence.ManyToOne()
	private bairui.international.model.domain.jpa.TB_BranchCompanyStaff verifior;

	/** get[金额] */
	public Double getMoney() {
		return this.money;
	}

	/** get[编号] */
	public String getNumber() {
		return this.number;
	}

	/** get[分公司员工提现审核记录] */
	public java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord> getBranchCompanyStaffWithdrawVerifyRecords() {
		return this.branchCompanyStaffWithdrawVerifyRecords;
	}

	/** get[状态] */
	public bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder getState() {
		return this.state;
	}

	/** get[提交时间] */
	public java.util.Date getSubmitDate() {
		return this.submitDate;
	}

	/** get[分公司员工金额记录] */
	public java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord> getBranchCompanyStaffMoneyRecords() {
		return this.branchCompanyStaffMoneyRecords;
	}

	/** get[审核时间] */
	public java.util.Date getVerifyDate() {
		return this.verifyDate;
	}

	/** get[用户名] */
	public String getRealName() {
		return this.realName;
	}

	/** get[提现账号] */
	public String getAccountNumber() {
		return this.accountNumber;
	}

	/** get[开户行] */
	public String getBank() {
		return this.bank;
	}

	/** get[审核意见] */
	public String getVerifyComment() {
		return this.verifyComment;
	}

	/** get[汇款截图] */
	public String getRemitImgUrl() {
		return this.remitImgUrl;
	}

	/** get[分公司员工] */
	public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getBranchCompanyStaff() {
		return this.branchCompanyStaff;
	}

	/** get[审核者] */
	public bairui.international.model.domain.jpa.TB_BranchCompanyStaff getVerifior() {
		return this.verifior;
	}

	/** set[金额] */
	public void setMoney(Double money) {
		this.money = money;
	}

	/** set[编号] */
	public void setNumber(String number) {
		this.number = number;
	}

	/** set[分公司员工提现审核记录] */
	public void setBranchCompanyStaffWithdrawVerifyRecords(java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord> branchCompanyStaffWithdrawVerifyRecords) {
		this.branchCompanyStaffWithdrawVerifyRecords = branchCompanyStaffWithdrawVerifyRecords;
	}

	/** set[状态] */
	public void setState(bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder state) {
		this.state = state;
	}

	/** set[提交时间] */
	public void setSubmitDate(java.util.Date submitDate) {
		this.submitDate = submitDate;
	}

	/** set[分公司员工金额记录] */
	public void setBranchCompanyStaffMoneyRecords(java.util.List<bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord> branchCompanyStaffMoneyRecords) {
		this.branchCompanyStaffMoneyRecords = branchCompanyStaffMoneyRecords;
	}

	/** set[审核时间] */
	public void setVerifyDate(java.util.Date verifyDate) {
		this.verifyDate = verifyDate;
	}

	/** set[用户名] */
	public void setRealName(String realName) {
		this.realName = realName;
	}

	/** set[提现账号] */
	public void setAccountNumber(String accountNumber) {
		this.accountNumber = accountNumber;
	}

	/** set[开户行] */
	public void setBank(String bank) {
		this.bank = bank;
	}

	/** set[审核意见] */
	public void setVerifyComment(String verifyComment) {
		this.verifyComment = verifyComment;
	}

	/** set[汇款截图] */
	public void setRemitImgUrl(String remitImgUrl) {
		this.remitImgUrl = remitImgUrl;
	}

	/** set[分公司员工] */
	public void setBranchCompanyStaff(bairui.international.model.domain.jpa.TB_BranchCompanyStaff branchCompanyStaff) {
		this.branchCompanyStaff = branchCompanyStaff;
	}

	/** set[审核者] */
	public void setVerifior(bairui.international.model.domain.jpa.TB_BranchCompanyStaff verifior) {
		this.verifior = verifior;
	}



	public void assignBranchCompanyStaff(bairui.international.model.domain.jpa.TB_BranchCompanyStaff branchCompanyStaff) {
		if(null != branchCompanyStaff){
			branchCompanyStaff.addBranchCompanyStaffWithdrawOrders(this);
		}
		this.setBranchCompanyStaff(branchCompanyStaff);
	}
	

	public void assignVerifior(bairui.international.model.domain.jpa.TB_BranchCompanyStaff verifior) {
		if(null != verifior){
			verifior.addVerifiedWithdrawOrders(this);
		}
		this.setVerifior(verifior);
	}
	

	/** add[BranchCompanyStaffWithdrawVerifyRecords] */
	public TB_BranchCompanyStaffWithdrawOrder addBranchCompanyStaffWithdrawVerifyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord ... branchCompanyStaffWithdrawVerifyRecords){
		if(this.branchCompanyStaffWithdrawVerifyRecords == null){
			this.branchCompanyStaffWithdrawVerifyRecords = new java.util.ArrayList<>();
		}
		for(bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord bean : branchCompanyStaffWithdrawVerifyRecords){
			bean.setBranchCompanyStaffWithdrawOrder(this);
			this.branchCompanyStaffWithdrawVerifyRecords.add(bean);
		}
		return this;
	}
	/** add[BranchCompanyStaffMoneyRecords] */
	public TB_BranchCompanyStaffWithdrawOrder addBranchCompanyStaffMoneyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord ... branchCompanyStaffMoneyRecords){
		if(this.branchCompanyStaffMoneyRecords == null){
			this.branchCompanyStaffMoneyRecords = new java.util.ArrayList<>();
		}
		for(bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord bean : branchCompanyStaffMoneyRecords){
			bean.setBranchCompanyStaffWithdrawOrder(this);
			this.branchCompanyStaffMoneyRecords.add(bean);
		}
		return this;
	}
	
	/** remove[BranchCompanyStaffWithdrawVerifyRecords] */
	public TB_BranchCompanyStaffWithdrawOrder removeBranchCompanyStaffWithdrawVerifyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord ... branchCompanyStaffWithdrawVerifyRecords){
		if(this.branchCompanyStaffWithdrawVerifyRecords == null){
			return this;
		}
		for(bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord bean : branchCompanyStaffWithdrawVerifyRecords){
			bean.setBranchCompanyStaffWithdrawOrder(null);
			this.branchCompanyStaffWithdrawVerifyRecords.remove(bean);
		}
		return this;
	}
	/** remove[BranchCompanyStaffMoneyRecords] */
	public TB_BranchCompanyStaffWithdrawOrder removeBranchCompanyStaffMoneyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord ... branchCompanyStaffMoneyRecords){
		if(this.branchCompanyStaffMoneyRecords == null){
			return this;
		}
		for(bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord bean : branchCompanyStaffMoneyRecords){
			bean.setBranchCompanyStaffWithdrawOrder(null);
			this.branchCompanyStaffMoneyRecords.remove(bean);
		}
		return this;
	}
	
	/**
	 * contains[BranchCompanyStaffWithdrawVerifyRecords]
	 *
	 * 全部输入都包含：返回 true
	 * 输入中有至少有一个不包含：返回 false
	 */
	public boolean containsBranchCompanyStaffWithdrawVerifyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffWithdrawVerifyRecord ... branchCompanyStaffWithdrawVerifyRecords){
		if(this.branchCompanyStaffWithdrawVerifyRecords == null || branchCompanyStaffWithdrawVerifyRecords==null || branchCompanyStaffWithdrawVerifyRecords.length<=0){
			return false;
		}
		return this.branchCompanyStaffWithdrawVerifyRecords.containsAll(java.util.Arrays.asList(branchCompanyStaffWithdrawVerifyRecords));
	}
	/**
	 * contains[BranchCompanyStaffMoneyRecords]
	 *
	 * 全部输入都包含：返回 true
	 * 输入中有至少有一个不包含：返回 false
	 */
	public boolean containsBranchCompanyStaffMoneyRecords(bairui.international.model.domain.jpa.TB_BranchCompanyStaffMoneyRecord ... branchCompanyStaffMoneyRecords){
		if(this.branchCompanyStaffMoneyRecords == null || branchCompanyStaffMoneyRecords==null || branchCompanyStaffMoneyRecords.length<=0){
			return false;
		}
		return this.branchCompanyStaffMoneyRecords.containsAll(java.util.Arrays.asList(branchCompanyStaffMoneyRecords));
	}
	

	/** take[分公司员工] */
	public bairui.international.model.domain.jpa.TB_BranchCompanyStaff takeBranchCompanyStaff(){
		if(null == this.branchCompanyStaff){
			this.branchCompanyStaff = new bairui.international.model.domain.jpa.TB_BranchCompanyStaff();
		}
		return this.branchCompanyStaff;
	}
	
	/** take[审核者] */
	public bairui.international.model.domain.jpa.TB_BranchCompanyStaff takeVerifior(){
		if(null == this.verifior){
			this.verifior = new bairui.international.model.domain.jpa.TB_BranchCompanyStaff();
		}
		return this.verifior;
	}
	
	/** must[分公司员工] */
	public bairui.international.model.domain.jpa.TB_BranchCompanyStaff mustBranchCompanyStaff() {
		return this.branchCompanyStaff;
	}
	
	/** optional[审核者] */
	public java.util.Optional<bairui.international.model.domain.jpa.TB_BranchCompanyStaff> optionalVerifior() {
		return java.util.Optional.ofNullable(this.verifior);
	}
	

	/**
	 * 复写 hashCode
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		return prime * result + ((this.getId() == null) ? 0 : this.getId().hashCode());
	}
	
	/**
	 * 复写 equals
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj){
			return true;
		}
		if (obj == null){
			return false;
		}
		if (getClass() != obj.getClass()){
			return false;
		}
		TB_BranchCompanyStaffWithdrawOrder other = (TB_BranchCompanyStaffWithdrawOrder) obj;
		if (this.getId() == null) {
			return false;
		} else if (!this.getId().equals(other.getId())){
			return false;
		}
		return true;
	}
	

	/**
	 * 用来覆盖toString()的输出
	 */
	@javax.persistence.Transient
	private String toString;
	
	public void setToString(String toString) {
		this.toString = toString;
	}
	
	/**
	 * 复写 toString
	 */
	@Override
	public String toString() {
		if(null != this.toString){
			return this.toString;
		}
		return super.toString();
	}	

	@javax.persistence.PrePersist
	public void prePersist() {
		this.setCreateTime(new java.util.Date());
		this.setModifyTime(new java.util.Date());
	}
	
	@javax.persistence.PreUpdate
	public void preUpdate() {
		this.setModifyTime(new java.util.Date());
	}

	/**
	 * 状态相关
	 */
	public bairui.international.model.status.State_BranchCompanyStaffWithdrawOrder state(){
		return this.getState();
	}


}
